From 2fd270048ef72e26488f65ac3fd3c488eb1b8abd Mon Sep 17 00:00:00 2001 From: "kaf24@firebug.cl.cam.ac.uk" Date: Thu, 24 Nov 2005 20:01:16 +0100 Subject: [PATCH] Remove CONFIG_PREEMPT configuration option from Xen kernel builds. The option reduces overall system performance and makes little sense when running over a preemptive hypervisor. Removing the option also fixes some hypothetical races. The forthcoming voluntary-preemption option will make much more sense to enable when running over Xen. Signed-off-by: Keir Fraser --- .../arch/xen/configs/xen0_defconfig_x86_32 | 5 ---- .../arch/xen/configs/xen0_defconfig_x86_64 | 1 - .../arch/xen/configs/xenU_defconfig_x86_32 | 3 -- .../arch/xen/configs/xenU_defconfig_x86_64 | 1 - .../arch/xen/configs/xen_defconfig_x86_32 | 3 -- .../arch/xen/configs/xen_defconfig_x86_64 | 1 - linux-2.6-xen-sparse/arch/xen/i386/Kconfig | 22 +++++++------- linux-2.6-xen-sparse/arch/xen/x86_64/Kconfig | 30 +++++++++---------- 8 files changed, 26 insertions(+), 40 deletions(-) diff --git a/linux-2.6-xen-sparse/arch/xen/configs/xen0_defconfig_x86_32 b/linux-2.6-xen-sparse/arch/xen/configs/xen0_defconfig_x86_32 index bae115ecc7..1370fc77d8 100644 --- a/linux-2.6-xen-sparse/arch/xen/configs/xen0_defconfig_x86_32 +++ b/linux-2.6-xen-sparse/arch/xen/configs/xen0_defconfig_x86_32 @@ -35,7 +35,6 @@ CONFIG_EXPERIMENTAL=y # CONFIG_CLEAN_COMPILE is not set CONFIG_BROKEN=y CONFIG_BROKEN_ON_SMP=y -CONFIG_LOCK_KERNEL=y CONFIG_INIT_ENV_ARG_LIMIT=32 # @@ -125,8 +124,6 @@ CONFIG_X86_USE_PPRO_CHECKSUM=y # CONFIG_HPET_TIMER is not set # CONFIG_HPET_EMULATE_RTC is not set # CONFIG_SMP is not set -CONFIG_PREEMPT=y -CONFIG_PREEMPT_BKL=y # CONFIG_X86_REBOOTFIXUPS is not set CONFIG_MICROCODE=y CONFIG_X86_CPUID=y @@ -141,7 +138,6 @@ CONFIG_HIGHMEM4G=y # CONFIG_HIGHMEM64G is not set CONFIG_HIGHMEM=y CONFIG_MTRR=y -CONFIG_HAVE_DEC_LOCK=y # CONFIG_REGPARM is not set CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y @@ -1259,7 +1255,6 @@ CONFIG_MAGIC_SYSRQ=y CONFIG_LOG_BUF_SHIFT=14 # CONFIG_SCHEDSTATS is not set # CONFIG_DEBUG_SLAB is not set -# CONFIG_DEBUG_PREEMPT is not set # CONFIG_DEBUG_SPINLOCK is not set # CONFIG_DEBUG_SPINLOCK_SLEEP is not set # CONFIG_DEBUG_KOBJECT is not set diff --git a/linux-2.6-xen-sparse/arch/xen/configs/xen0_defconfig_x86_64 b/linux-2.6-xen-sparse/arch/xen/configs/xen0_defconfig_x86_64 index cb54da3b0e..70897076f9 100644 --- a/linux-2.6-xen-sparse/arch/xen/configs/xen0_defconfig_x86_64 +++ b/linux-2.6-xen-sparse/arch/xen/configs/xen0_defconfig_x86_64 @@ -90,7 +90,6 @@ CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_X86_GOOD_APIC=y # CONFIG_HPET_TIMER is not set # CONFIG_SMP is not set -# CONFIG_PREEMPT is not set CONFIG_MICROCODE=y # CONFIG_X86_CPUID is not set CONFIG_SWIOTLB=y diff --git a/linux-2.6-xen-sparse/arch/xen/configs/xenU_defconfig_x86_32 b/linux-2.6-xen-sparse/arch/xen/configs/xenU_defconfig_x86_32 index 0715a55361..a4e9d33376 100644 --- a/linux-2.6-xen-sparse/arch/xen/configs/xenU_defconfig_x86_32 +++ b/linux-2.6-xen-sparse/arch/xen/configs/xenU_defconfig_x86_32 @@ -125,8 +125,6 @@ CONFIG_SMP=y CONFIG_SMP_ALTERNATIVES=y CONFIG_NR_CPUS=8 # CONFIG_SCHED_SMT is not set -CONFIG_PREEMPT=y -CONFIG_PREEMPT_BKL=y # CONFIG_X86_REBOOTFIXUPS is not set CONFIG_X86_CPUID=y @@ -550,7 +548,6 @@ CONFIG_MAGIC_SYSRQ=y CONFIG_LOG_BUF_SHIFT=14 # CONFIG_SCHEDSTATS is not set # CONFIG_DEBUG_SLAB is not set -# CONFIG_DEBUG_PREEMPT is not set # CONFIG_DEBUG_SPINLOCK is not set # CONFIG_DEBUG_SPINLOCK_SLEEP is not set # CONFIG_DEBUG_KOBJECT is not set diff --git a/linux-2.6-xen-sparse/arch/xen/configs/xenU_defconfig_x86_64 b/linux-2.6-xen-sparse/arch/xen/configs/xenU_defconfig_x86_64 index 87ca4d45e1..7e9d1a5888 100644 --- a/linux-2.6-xen-sparse/arch/xen/configs/xenU_defconfig_x86_64 +++ b/linux-2.6-xen-sparse/arch/xen/configs/xenU_defconfig_x86_64 @@ -92,7 +92,6 @@ CONFIG_X86_GOOD_APIC=y CONFIG_SMP=y CONFIG_NR_CPUS=8 # CONFIG_SCHED_SMT is not set -# CONFIG_PREEMPT is not set # CONFIG_MICROCODE is not set CONFIG_X86_CPUID=y # CONFIG_NUMA is not set diff --git a/linux-2.6-xen-sparse/arch/xen/configs/xen_defconfig_x86_32 b/linux-2.6-xen-sparse/arch/xen/configs/xen_defconfig_x86_32 index 6a210a8fc5..5bfa138e80 100644 --- a/linux-2.6-xen-sparse/arch/xen/configs/xen_defconfig_x86_32 +++ b/linux-2.6-xen-sparse/arch/xen/configs/xen_defconfig_x86_32 @@ -132,8 +132,6 @@ CONFIG_SMP=y CONFIG_SMP_ALTERNATIVES=y CONFIG_NR_CPUS=8 # CONFIG_SCHED_SMT is not set -CONFIG_PREEMPT=y -CONFIG_PREEMPT_BKL=y # CONFIG_X86_REBOOTFIXUPS is not set CONFIG_MICROCODE=y CONFIG_X86_CPUID=m @@ -2951,7 +2949,6 @@ CONFIG_MAGIC_SYSRQ=y CONFIG_LOG_BUF_SHIFT=14 # CONFIG_SCHEDSTATS is not set # CONFIG_DEBUG_SLAB is not set -CONFIG_DEBUG_PREEMPT=y # CONFIG_DEBUG_SPINLOCK is not set # CONFIG_DEBUG_SPINLOCK_SLEEP is not set # CONFIG_DEBUG_KOBJECT is not set diff --git a/linux-2.6-xen-sparse/arch/xen/configs/xen_defconfig_x86_64 b/linux-2.6-xen-sparse/arch/xen/configs/xen_defconfig_x86_64 index 4a14a2d9ba..d5c01d3a6f 100644 --- a/linux-2.6-xen-sparse/arch/xen/configs/xen_defconfig_x86_64 +++ b/linux-2.6-xen-sparse/arch/xen/configs/xen_defconfig_x86_64 @@ -95,7 +95,6 @@ CONFIG_X86_GOOD_APIC=y CONFIG_SMP=y CONFIG_NR_CPUS=8 # CONFIG_SCHED_SMT is not set -# CONFIG_PREEMPT is not set CONFIG_MICROCODE=y # CONFIG_X86_CPUID is not set # CONFIG_NUMA is not set diff --git a/linux-2.6-xen-sparse/arch/xen/i386/Kconfig b/linux-2.6-xen-sparse/arch/xen/i386/Kconfig index 91873ae4b6..d301b89a62 100644 --- a/linux-2.6-xen-sparse/arch/xen/i386/Kconfig +++ b/linux-2.6-xen-sparse/arch/xen/i386/Kconfig @@ -415,17 +415,17 @@ config SCHED_SMT cost of slightly increased overhead in some places. If unsure say N here. -config PREEMPT - bool "Preemptible Kernel" - help - This option reduces the latency of the kernel when reacting to - real-time or interactive events by allowing a low priority process to - be preempted even if it is in kernel mode executing a system call. - This allows applications to run more reliably even when the system is - under load. - - Say Y here if you are building a kernel for a desktop, embedded - or real-time system. Say N if you are unsure. +#config PREEMPT +# bool "Preemptible Kernel" +# help +# This option reduces the latency of the kernel when reacting to +# real-time or interactive events by allowing a low priority process to +# be preempted even if it is in kernel mode executing a system call. +# This allows applications to run more reliably even when the system is +# under load. +# +# Say Y here if you are building a kernel for a desktop, embedded +# or real-time system. Say N if you are unsure. config PREEMPT_BKL bool "Preempt The Big Kernel Lock" diff --git a/linux-2.6-xen-sparse/arch/xen/x86_64/Kconfig b/linux-2.6-xen-sparse/arch/xen/x86_64/Kconfig index efed94b445..b047c9528d 100644 --- a/linux-2.6-xen-sparse/arch/xen/x86_64/Kconfig +++ b/linux-2.6-xen-sparse/arch/xen/x86_64/Kconfig @@ -224,21 +224,21 @@ config SMP If you don't know what to do here, say N. -config PREEMPT - bool "Preemptible Kernel" - ---help--- - This option reduces the latency of the kernel when reacting to - real-time or interactive events by allowing a low priority process to - be preempted even if it is in kernel mode executing a system call. - This allows applications to run more reliably even when the system is - under load. On contrary it may also break your drivers and add - priority inheritance problems to your system. Don't select it if - you rely on a stable system or have slightly obscure hardware. - It's also not very well tested on x86-64 currently. - You have been warned. - - Say Y here if you are feeling brave and building a kernel for a - desktop, embedded or real-time system. Say N if you are unsure. +#config PREEMPT +# bool "Preemptible Kernel" +# ---help--- +# This option reduces the latency of the kernel when reacting to +# real-time or interactive events by allowing a low priority process to +# be preempted even if it is in kernel mode executing a system call. +# This allows applications to run more reliably even when the system is +# under load. On contrary it may also break your drivers and add +# priority inheritance problems to your system. Don't select it if +# you rely on a stable system or have slightly obscure hardware. +# It's also not very well tested on x86-64 currently. +# You have been warned. +# +# Say Y here if you are feeling brave and building a kernel for a +# desktop, embedded or real-time system. Say N if you are unsure. config SCHED_SMT bool "SMT (Hyperthreading) scheduler support" -- 2.30.2